package com.sharer.last.base.enums;

import com.sharer.last.base.interfaces.BaseExceptionCode;
import lombok.Getter;

/**
 * 业务异常错误码
 *
 * @ClassName BusinessExceptionCode
 * @Author WangJin
 * @Date 2023/6/9 15:37
 * @Description 专门用于业务异常错误抛出
 * @Version 1.0
 */
@Getter
public enum BusinessExceptionCode implements BaseExceptionCode {
    /**
     * 未知访客，禁止操作
     */
    USER_IS_UNKNOWN(10000, "未知访客，禁止操作"),

    /**
     * Token校验失败
     */
    CHECK_TOKEN_FAIL(10001, "Token校验失败"),

    /**
     * id为空
     */
    ID_IS_NULL(20001, "id为空"),
    /**
     * 数据为空
     */
    NAME_IS_BLANK(20002, "名称为空"),

    /**
     * 已存在
     */
    DATA_IS_EXIST(20010, "数据已存在"),
    /**
     * 已存在
     */
    DATA_IS_EMPTY(20011, "数据不存在"),
    /**
     * 新增失败
     */
    DATA_INSERT_FAIL(20012, "新增失败"),
    /**
     * 更新失败
     */
    DATA_UPDATE_FAIL(20013, "更新失败"),
    /**
     * 删除失败
     */
    DATA_REMOVE_FAIL(20014, "删除失败"),

    /**
     * 已有博客和此分类存在关联
     */
    CATEGORY_HAS_BLOG_EXIST_RELATEDNESS(20015, "已有博客和此分类存在关联"),
    /**
     * 已有博客和此标签存在关联
     */
    TAG_HAS_BLOG_EXIST_RELATEDNESS(20016, "已有博客和此标签存在关联"),
    /**
     * 昵称为空
     */
    NICKNAME_IS_BLANK(20017, "昵称为空"),
    /**
     * 此博客无需密码，请刷新重试
     */
    BLOG_SHOW_PERMISSION(20018, "此博客无需密码，请刷新重试"),
    ;
    private int code;

    private String msg;

    private String prefix;

    BusinessExceptionCode(int code, String message) {
        this.code = code;
        this.msg = message;
    }

    BusinessExceptionCode(int code, String message, String prefix) {
        this.code = code;
        this.msg = message;
        this.prefix = prefix;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }
}
